package data_structure;

/**
 *链表是一种灵活的数据结构，它由一个个节点组成，每个节点包含数据和指向下一个节点的引用。
 * 链表的优点是插入和删除操作效率高，只需要修改节点的引用，时间复杂度为 O (1)。
 * 但缺点是访问元素时需要从头节点开始遍历，时间复杂度为 O (n)。链表有单向链表、双向链表和循环链表等不同类型。
 * 在 Java 中，我们可以自己定义节点类和链表类来实现链表。
 * 例如，单向链表的节点包含数据和指向下一个节点的引用，通过不断修改引用可以实现节点的插入和删除。
 *
 *
 * @author 1
 * @version 1.0
 * @description: TODO
 * @date 2025-02-21 14:07
 */
// 定义链表节点类
class Node {
    int data;
    Node next;

    Node(int data) {
        this.data = data;
        this.next = null;
    }
}

// 定义链表类
class LinkedListExample {
    Node head;

    // 在链表尾部添加节点
    public void append(int data) {
        Node newNode = new Node(data);
        if (head == null) {
            head = newNode;
            return;
        }
        Node last = head;
        while (last.next != null) {
            last = last.next;
        }
        last.next = newNode;
    }

    // 打印链表元素
    public void printList() {
        Node current = head;
        while (current != null) {
            System.out.print(current.data + " ");
            current = current.next;
        }
        System.out.println();
    }

    public static void main(String[] args) {
        LinkedListExample list = new LinkedListExample();
        list.append(1);
        list.append(2);
        list.append(3);
        list.printList();
    }
}
